In today's society, computers are ubiquitous. For example, computers may be found in grocery stores, automobiles, airplanes, watches, or other electronic devices. Often computers include a processor that executes various functions such as mathematical computations, running programs, and retrieving and storing information. A processor that retrieves and stores information may use a storage device such as a disk drive (e.g., hard disk) or memory. Generally, memory devices store information in binary form—i.e., 1s and 0s. This binary information may be stored by assigning differing voltage states to binary values. For example, a binary 0 may be assigned 0 volts, while a binary 1 may be assigned 5 volts. Traditionally, memory devices have been implemented using transistors configured to form logic gates that are able to store binary values. However, recent trends include memory devices implemented using an array of magnetic elements that are constructed using semiconductor processing techniques.
One embodiment of an array of magnetic memory elements may comprise individual magnetic memory elements formed by using two layers of magnetic material that have adjustable magnetic orientations. The magnetic materials may be formed with an insulating layer sandwiched between them. Because the magnetic materials are designed to be adjustable, the magnetic field for each material may be adjusted by applying electrical current in proximity to the material. The orientations of two magnetic layers may be in the same direction (termed “parallel”), or they may be opposite each other (termed “anti-parallel”).
Each magnetic memory element may also have an electrical resistance. The electrical resistance of the magnetic memory element may vary depending on the parallel or anti-parallel orientation of the magnetic fields. For example, parallel orientation may yield a resistance of 1 MΩ whereas anti-parallel orientation may produce a resistance of 1.1 MΩ. Because the resistance of the magnetic memory element may be changed, binary values (e.g., 1s and 0s) may be associated with the electrical resistance. Circuitry may be used to estimate the resistive value of the memory elements, and consequently determine the memory element's digital value. For one or more reasons, estimations for the resistive value of an individual memory element within the memory array may be inaccurate, which may then cause the digital value to be inaccurately determined.